<?php

// include_once "../../models/core_mysql.php";


// getUserList($conn);

// 获取所有的用户信息
function getUserList($conn)
{
    $jsonArray = array(); // 用一个二维数组存储需要的数据

    // 根据设置的主键 uid 查：
    // 预处理语句，后面的 ？，也是为了防止黑客的攻击
    // $sql = "SELECT * FROM users";
    $sql = "SELECT users.uid, users.username, users.is_sign, users.sign_time FROM users";
    $mysqli_stmt = $conn->prepare($sql);

    // 执行预处理语句
    if($mysqli_stmt->execute()){
        $uid = null;
        $username = null;
        $is_sign = null;
        $sign_time = null;
        $mysqli_stmt->bind_result($uid, $username, $is_sign, $sign_time);

        // 只判断：年，月，日。因为管理员查到的 $sign_time 是员工最近一次打卡的时间，如果最近一次打卡时间不是今天，那么今天就是没有打卡
        // $today_time = date('Y-m-d 00:00:00', time()); 
        // $today_stamp = strtotime($today_time); // 当天凌晨的时间
        // $time_stamp = strtotime($sign_time); // 最近一次打卡的时间

        // 遍历结果集
        while($mysqli_stmt->fetch()){
            // echo "username: " . $username;
            // echo "<br>";

            // 和数据库的数据不是很一致的哦（先不提供这个功能了）
            // if ($time_stamp < $today_stamp) {
            //     // echo "$sign_time 发生在 $today_time 之前";
            //     $is_sign = 0;
            // } else if ($time_stamp > $today_stamp) {
            //     // echo "$sign_time 发生在 $sign_time 之后";
            //     $is_sign = 1;
            // } else {
            //     // echo "$time1 和 $time2 是相同的时间";
            //     // echo "几乎不可能的";
            // }

            // 注意下面插入数组中数据的顺序：(uid, username, is_sign, sign_time)
            array_push($jsonArray, array($uid, $username, $is_sign, $sign_time));
        }
        // 管理员登陆失败
        // echo "<h2>error</h2>";

        // var_dump($jsonArray);
    }else{
        echo $mysqli_stmt->error; // 执行失败，显示错误信息
    }

    // 释放结果集
    $mysqli_stmt->free_result();
    $mysqli_stmt->close();
    $conn->close(); 

    return $jsonArray;
}




// 更新一下数据库员工的 $is_sign 字段
function updateSign($conn, $uid, $sign_time, $is_sign)
{
    // 改
    $sql = "UPDATE users SET is_sign = ?, sign_time = ? WHERE uid = ?";
    $mysqli_stmt = $conn->prepare($sql);

    // s: string    i: int
    // $mysqli_stmt->bind_param('isi', $is_sign, $sign_time, $uid); // $sign_time 得获取当前系统的时间的哦，用 date('Y-m-d h:i:s', time())
    // 下面的 $uid 在数据库里面是 int 类型的，但是上面从网页获取到的数据不一定是 int 类型的哦。所以上面获取到 $rsUid 之后就强转成 int 类型了
    $mysqli_stmt->bind_param('iis', $is_sign, $uid, $sign_time); 


    // 执行预处理语句
    if($mysqli_stmt->execute()){
        // echo PHP_EOL;
        //  window.location.href 跳转到新页面
        // echo "<script>window.location.href='../../views/office/feedback.php';</script>";
    }else{
        echo $mysqli_stmt->error; // 执行失败，显示错误信息
    }

    // 释放结果集
    $mysqli_stmt->free_result();
    $mysqli_stmt->close();
    // $conn->close(); 
}
